from django.db import models

# Create your models here.
"""部门类"""
class Department(models.Model):
    #部门名称
    name = models.CharField(max_length=20)
    #部门成立时间,auto_now_add=True  表示django自动将当前时间记录进属性
    create_date = models.DateField(auto_now_add=True)
    #逻辑删除标识，标识部门是否删除,给个默认值为False不删除
    is_delete = models.BooleanField(default=False)

    #打印的时候避免打印地址，打印部门名称
    def __str__(self):
        return self.name

    #表名不使用django默认的 应用名小写_模型类名小写，user_department
    class Meta(object):
        #指定表名
        db_table = 'department'
        #修改模型类表在管理后台显示的名字
        verbose_name = '部门'
        verbose_name_plural = verbose_name


"""员工类"""
class Employee(models.Model):
    #员工姓名
    name = models.CharField(max_length=20)
    #员工年龄
    age = models.IntegerField()
    #以下拉框的形式的性别
    choices_gender = ((0,'男'),(1,'女'),)
    #员工性别,下拉框时用的是数字代替男女，所以数据类型为整数
    gender = models.IntegerField(default=0,choices=choices_gender)
    #员工工资：浮点类型，必须要制定两个选项：一个是总的位数，一个是小数点后有几位，
    #关于钱的都用DecimalField类，精确度更高
    salary = models.DecimalField(max_digits=8, decimal_places=2)
    #备注信息，可以为空,
    # null,是针对数据库的可以为空
    #blank，是针对前端的可以不填此表单项
    comment = models.CharField(max_length=300, null=True, blank=True)
    #员工入职时间, hire:聘请，入职
    hire_date = models.DateField(auto_now_add=True)
    #此条模型对象更新时间,自动将当前时间记录为最后更改的时间
    # update_data = models.DateTimeField(auto_now=True)
    #一对多的外键一般设置在多的一方，员工是多的一方，一般为一的一方的主键models.ForeignKey('Department'),
    #括号里一般放的是一的一方 表类名 的字符串
    department = models.ForeignKey('Department',on_delete=models.PROTECT)
    #要上传图片需要图片的类型,upload_to,是在放图片的文件中会自动生成user文件夹
    avatar = models.ImageField(upload_to='user',null=True)

    #设置打印时的内容
    def __str__(self):
        return self.name

    #修改默认表名
    class Meta(object):
        #指定表名
        db_table = 'employee'
        # 修改模型类表在管理后台显示的名字
        verbose_name = '员工'
        verbose_name_plural = verbose_name


